<!-- 
	http原理
	http协议
	http三次握手和四次挥手
	浏览器是如何运作的，从界面到页面渲染，浏览器进程，浏览器输入地址发生了什么（重点）分析
 -->
<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<body>
		<!-- 
			http原理：
				客户端请求服务端数据，服务端响应被请求的数据并返回给客户端//
				post请求服务端数据一般会有个content-type内容类型这个key-value键值对的请求头，而且还可以自定义请求头
				同时http请求数据的时候会自动携带一个cookie过去到服务端那边，去进行一个状态记录来实现状态管理

			http协议：
				http是应用层的协议，但是要在传输层里面，去进行协议的选择
				是客户端和服务端之间的数据传输的格式规范，这种格式简称为“超文本传输协议”

			http三次握手：
				客户端向服务端发起syn包，等待服务器确认
				服务端收到syn包，必须确认客户的syn包，同时服务器向客户端发送一个syn+ack包
				客户端收到syn+ack包，向服务器发送ack包，确认客户端和服务器之间可以发送和接收数据

				→←→

			http四次挥手：
				客户端向服务器发送fin包，来关闭客户端与服务器之间的连接，
				服务器收到fin，并发回ack包，设置确认序号+1
				服务器关闭和客户端之间的连接，发回一个fin包
				客户端发回ack报文确认，并将确认序号+1

				→←←→

			握手是来回确认是否打开，挥手是每两次确认是否关闭
				
			浏览器是如何运作的：
				先了解内核：
					ie--trident  火狐--gecko  safari--webkit  谷歌、Opera、edge--blink
				浏览器的运作可分为：
					用户界面-浏览器引擎-渲染引擎(网络和js解析器)-成型页面
					
						浏览器会启动一个进程来执行任务代码，并为进程分配内存空间，该应用程序的【状态】都保存在该内存空间里
							应用一旦关闭，内存会被回收，
						进程可以启动更多的进程来执行任务，并且每个内存空间是独立的，
							因为进程每个是独立的，所以不会影响到整个应用程序
						进程里面可以单独生成多个线程来进行执行任务
						
					浏览器的进程可分为
						浏览器进程
							负责控制标签栏的进程，浏览器进程又分为
								缓存进程-网络进程-GPU进程和插件进程(比如flash)
						渲染器进程
					
					浏览器输入网址如何获取数据（重点）
						访问的是网址，会通过网络线程来进行dns解析，并开始连接服务器获取数据
							之后如果有安全检查机制，会检查站点是否安全，安全则返回数据
							之后拿到数据之后就开始进行页面的渲染流程，开始解析html，渲染dom结构
							在解析html途中遇到script标签则会发生渲染阻塞
							dom渲染完成并解析css样式，渲染layout tree去进行页面布局渲染，
							---
							display：none元素不会出现在layout tree里面，伪类元素会出现在layout tree里面，但dom树是没有的
							除此之外，还需要知道节点的绘制顺序，比如z-index，需要定位的配合
								主线程遍历layout tree，来创建绘制记录表，记录绘制的顺序
							然后进行栅格化来进行内容显示
							---
						访问的是关键词，会调用默认的搜索引擎来进行查询内容
		 -->
	</body>
</html>
